package com.imprenta.bean;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;
import javax.faces.render.ResponseStateManager;

import com.imprenta.ejb.EjbCbTClient;
import com.imprenta.model.TipoClienteBase;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

@SuppressWarnings("unused")
@SessionScoped
public class TipoClienteBean {
	
	private TipoClienteBase tipoCliente;
	private HashMap<Integer,TipoClienteBase > listaTipoCliente = new HashMap<Integer, TipoClienteBase>();
	private List<SelectItem> tipoClienteItems = new LinkedList<SelectItem>();
	
	
	public TipoClienteBean() {
		/*
		 * Esto es parecido a un postback en asp.net.
		FacesContext context = FacesContext.getCurrentInstance();
		if (!(context != null && context.getExternalContext().getRequestParameterMap().containsKey(ResponseStateManager.VIEW_STATE_PARAM))) {
			this.setListaTipoCliente(EjbCbTClient.getListTipoCliente());
		}
		*/
		ArrayList<TipoClienteBase> tcb = EjbCbTClient.getListTipoCliente();
		if (tcb!=null && tcb.size() > 0) {
			for (TipoClienteBase tipoClienteBase : tcb) {
				tipoClienteItems.add(new SelectItem(tipoClienteBase, tipoClienteBase.getDescripcion()));
				listaTipoCliente.put(tipoClienteBase.getTipoclienteid(), tipoClienteBase);
			}
		}
		//this.setListaTipoCliente(EjbCbTClient.getListTipoCliente());
		 
	}
	
	public void display(){
		FacesMessage msg = new FacesMessage("Selected", "tipo: " + this.getTipoCliente().getTipoclienteid());
		FacesContext.getCurrentInstance().addMessage(null, msg);
		
		System.out.println(tipoCliente);
	}
	
	public TipoClienteBase getTipoClienteById(Integer Id){
		return (TipoClienteBase) listaTipoCliente.get(Id);
	}

	public TipoClienteBase getTipoCliente() {
		return tipoCliente;
	}

	public void setTipoCliente(TipoClienteBase tipoCliente) {
		this.tipoCliente = tipoCliente;
	}

	public List<SelectItem> getTipoClienteItems() {
		return tipoClienteItems;
	}

	public void setTipoClienteItems(List<SelectItem> tipoClienteItems) {
		this.tipoClienteItems = tipoClienteItems;
	}
}
